const express = require('express')
const app = express()


// ** ---------- 跨域配置 ---------- **
const cors = require('cors')
app.use(cors())
// ** ---------- 跨域配置 End---------- **

// ** ---------- 表单数据解析中间件 ---------- **
// 使用 Body-parser库 - // 表单解析中间件 - 常见于 请求体body数据解析
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
//处理 JSON 格式的请求体
app.use(bodyParser.json())
// ** ---------- 表单数据解析中间件 End---------- **

// ** ---------- 解析token 中间件 限制接口权限 ---------- **
const authMiddleware = require('./server/middleware/authMiddleware.js')
app.use(authMiddleware)
// ** ----------  解析token 中间件 限制接口权限 End ---------- **

// ** ---------- 使用验证 JWT 的中间件 ---------- **
const verifyToken = require('./server/middleware/verifyToken.js')
app.use(verifyToken)

// ** ---------- 使用验证 JWT 的中间件 End---------- **

 // ** ---------- 全局错误拦截器 ---------- **
const errorMiddleware = require('./server/middleware/errorMiddleware.js')
app.use(errorMiddleware)
 // ** ---------- 全局错误拦截器 End---------- **


// 路由配置 - 即 api 接口

// 账户登录路由
const router = require('./server/api/login.js')
app.use(router)

// ** ---------- 模块路由注册 ---------- **
// 任务
const taskRouter = require('./server/api/task.js')
app.use('/task',taskRouter) // 增加路径前缀


// 文件
const uploadRouter = require('./server/api/upload.js')
app.use(uploadRouter)


// 菜单
const menuRouter = require('./server/api/menu.js')
app.use(menuRouter)


// 角色
const roleRouter = require('./server/api/role.js')
app.use(roleRouter)

// ** ---------- 模块路由注册 End---------- **


// 服务监听
app.listen(9000, ()=>{
  console.log("server is running http://127.0.0.1:9000");
})

